import request from '@/utils/request'

export abstract class UserRequest {
  /** 创建用户 */
  static create(createDto: UserType.Entity): Promise<string> {
    return request.post(`/system/user/create`, createDto)
  }

  /** 删除单个或者多个用户 */
  static delete(params: { userIds: string }) {
    return request.delete('/system/user/delete', { params })
  }

  /** 更新用户信息 */
  static update(updateDto: UserType.Entity): Promise<string> {
    return request.put(`/system/user/update`, updateDto)
  }

  /** 修改用户个人信息 */
  static updateProfile(updateDto: UserType.UpdateProfile): Promise<string> {
    return request.put(`/system/user/updateProfile`, updateDto)
  }

  /** 查询用户的分页列表 */
  static findList(params: TableQueryParams<UserType.Entity>): TableResult<UserType.Entity> {
    return request.get('/system/user/list', { params })
  }

  /** 根据用户 ID 查找用户信息 */
  static findOneById(params: { userId: string }): Promise<UserType.Entity> {
    return request.get('/system/user/detail', { params })
  }

  /** 修改密码 */
  static updatePassword(data: UserType.UpdatePwdDTO): Promise<string> {
    return request.put(`/system/user/updatePassword`, data)
  }

  /** 重置用户密码为系统默认值 */
  static resetPassword(data: { userId: string }): Promise<string> {
    return request.put(`/system/user/resetPassword`, data)
  }
}
